package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseVo;
import lombok.Data;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-财务-应付票据对象 erp_king_finance_pay_bill_info
 *
 * @author wutao
 * @date 2024-06-19
 */
@TableName ( "erp_king_finance_pay_bill_info" )
@ApiModel ( value = "erp_king_finance_pay_bill_info对象", description = "金蝶-财务-应付票据" )
@Data
public class KingFinancePayBillEntity extends BaseVo {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId ( value = "id", type = IdType.INPUT )
    private String id;

    /**
     * 票据类型；select走字典
     */
    @ApiModelProperty ( "所属公司，当前登录公司" )
    @TableField ( "dept_id" )
    @Excel ( name = "所属公司，当前登录公司" )
    private String deptId;

    /**
     * 票据类型；select走字典
     * {label: "银行承兑汇票", value: 1,},
     * {label: "商业承兑汇票", value: 1,},
     * {label: "信用证", value: 1,},
     */
    @ApiModelProperty ( "票据类型；select走字典" )
    @TableField ( "bill_type" )
    @Excel ( name = "票据类型；select走字典" )
    private String billType;

    /**
     * 票据(包)号，文本录入
     */
    @ApiModelProperty ( "票据(包)号，文本录入" )
    @TableField ( "bill_pack_no" )
    @Excel ( name = "票据(包)号，文本录入" )
    private String billPackNo;

    /**
     * 票据号
     */
    @ApiModelProperty ( "票据号" )
    @TableField ( "bill_no" )
    @Excel ( name = "票据号" )
    private String billNo;

    /**
     * 票据号
     */
    @ApiModelProperty ( "票据流水号" )
    @TableField ( "bill_serial_no" )
    @Excel ( name = "票据流水号" )
    private String billSerialNo;


    /**
     * 子票据开始序号，文本
     */
    @ApiModelProperty ( "子票据开始序号，文本" )
    @TableField ( "sub_bill_start_index" )
    @Excel ( name = "子票据开始序号，文本" )
    private Integer subBillStartIndex;

    /**
     * 子票据终止序号,自动生成=票面金额*100
     */
    @ApiModelProperty ( "子票据终止序号,自动生成=票面金额*100" )
    @TableField ( "sub_bill_end_index" )
    @Excel ( name = "子票据终止序号,自动生成=票面金额*100" )
    private Integer subBillEndIndex;

    /**
     * 币别Id,select走字典
     */
    @ApiModelProperty ( "币别Id,接口" )
    @TableField ( "king_base_currency_id" )
    @Excel ( name = "币别Id" )
    private String kingBaseCurrencyId;

    /**
     * 签发日
     */
    @ApiModelProperty ( "签发日" )
    @TableField ( "issuance_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "签发日", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date issuanceTime;

    /**
     * 到期日，该值必须大于签发日
     */
    @ApiModelProperty ( "到期日，该值必须大于签发日" )
    @TableField ( "due_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "到期日，该值必须大于签发日", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date dueTime;

    /**
     * 票面金额
     */
    @ApiModelProperty ( "票面金额" )
    @TableField ( "face_amount" )
    @Excel ( name = "票面金额" )
    private String faceAmount;

    /**
     * 期限(天数)
     */
    @ApiModelProperty ( "期限(天数)=到日期-签发日" )
    @TableField ( "pay_term" )
    @Excel ( name = "期限(天数)" )
    private Integer payTerm;

    /**
     * 票面利率
     */
    @ApiModelProperty ( "票面利率" )
    @TableField ( "face_rate" )
    @Excel ( name = "票面利率" )
    private String faceRate;

    /**
     * 到期金额,取票面金额
     */
    @ApiModelProperty ( "到期金额,如果没有票面利率，取票面金额，否则计算" )
    @TableField ( "due_amount" )
    @Excel ( name = "到期金额,取票面金额" )
    private String dueAmount;


    @ApiModelProperty ( "未付款票面金额=票面金额" )
    @TableField ( "unpaid_amount" )
    @Excel ( name = "到期金额,取票面金额" )
    private String unpaidAmount;

    @ApiModelProperty ( "未占用票面金额=票面金额" )
    @TableField ( "not_occupied_amount" )
    @Excel ( name = "未占用票面金额" )
    private String notOccupiedAmount;

    /**
     * 承兑人，dialog取烈阳公司银行列表
     */
    @ApiModelProperty ( "承兑人，dialog取烈阳公司银行列表" )
    @TableField ( "acceptance_bank_id" )
    @Excel ( name = "承兑人，dialog取烈阳公司银行列表" )
    private String acceptanceBankId;

    @ApiModelProperty ( "备注" )
    @TableField ( "remarks" )
    @Excel ( name = "备注" )
    private String remarks;

    @ApiModelProperty ( "可撤销，1 为 true，空为false" )
    @TableField ( "is_revocable" )
    @Excel ( name = "可撤销" )
    private Boolean isRevocable;

    @ApiModelProperty ( "期初" )
    @TableField ( "is_opening" )
    @Excel ( name = "期初" )
    private Boolean isOpening;

    @ApiModelProperty ( "带追索权" )
    @TableField ( "is_with_recourse" )
    @Excel ( name = "带追索权" )
    private Boolean isWithRecourse;

    @ApiModelProperty ( "电子票据" )
    @TableField ( "is_electronic_bills" )
    @Excel ( name = "电子票据" )
    private Boolean isElectronicBills;

    /**
     * 付款组织Id，dialog走接口
     */
    @ApiModelProperty ( "付款组织Id" )
    @TableField ( "pay_dept_id" )
    @Excel ( name = "付款组织Id" )
    private String payDeptId;

    /**
     * 结算组织Id,dialog接口
     */
    @ApiModelProperty ( "结算组织Id" )
    @TableField ( "settlement_dept_id" )
    @Excel ( name = "结算组织Id" )
    private String settlementDeptId;

    /**
     * 付款单位类型；select走字典
     */
    @ApiModelProperty ( "付款单位类型；select走字典" )
    @TableField ( "receipt_dept_type" )
    @Excel ( name = "付款单位类型；select走字典" )
    private String receiptDeptType;

    /**
     * 收款单位Id，dialog走接口
     */
    @ApiModelProperty ( "收款单位Id，dialog走接口" )
    @TableField ( "receipt_dept_id" )
    @Excel ( name = "收款单位Id，dialog走接口" )
    private String receiptDeptId;


    /**
     * 等分化票据;1:是；2：否
     */
    @ApiModelProperty ( "等分化票据;1:是；2：否" )
    @TableField ( "is_separate" )
    @Excel ( name = "等分化票据;1:是；2：否" )
    private Boolean isSeparate;

    @ApiModelProperty ( "采购组织" )
    @TableField ( "purchasing_org_id" )
    @Excel ( name = "采购组织" )
    private String purchasingOrgId;

    @ApiModelProperty ( "采购部门" )
    @TableField ( "purchasing_dept_id" )
    @Excel ( name = "采购部门" )
    private String purchasingDeptId;

    @ApiModelProperty ( "采购员" )
    @TableField ( "purchasing_user_id" )
    @Excel ( name = "采购员" )
    private String purchasingUserId;

    /**
     * 付款银行Id，dialog走接口
     */
    @ApiModelProperty ( "付款银行Id，dialog走接口" )
    @TableField ( "pay_bank_id" )
    @Excel ( name = "付款银行Id，dialog走接口" )
    private String payBankId;

    /**
     * 付款银行账号
     */
    @ApiModelProperty ( "付款银行账号" )
    @TableField ( "pay_bank_account" )
    @Excel ( name = "付款银行账号" )
    private String payBankAccount;

    /**
     * 付款银行账户名称
     */
    @ApiModelProperty ( "付款银行账户名称" )
    @TableField ( "pay_bank_name" )
    @Excel ( name = "付款银行账户名称" )
    private String payBankName;

    /**
     * 付款银行账户地址
     */
    @ApiModelProperty ( "付款银行账户地址" )
    @TableField ( "pay_bank_address" )
    @Excel ( name = "付款银行账户地址" )
    private String payBankAddress;

    /**
     * 收款银行
     */
    @ApiModelProperty ( "收款银行" )
    @TableField ( "receipt_bank" )
    @Excel ( name = "收款银行" )
    private String receiptBank;

    /**
     * 收款银行账号
     */
    @ApiModelProperty ( "收款银行账号" )
    @TableField ( "receipt_bank_account" )
    @Excel ( name = "收款银行账号" )
    private String receiptBankAccount;

    /**
     * 收款银行名称
     */
    @ApiModelProperty ( "收款银行名称" )
    @TableField ( "receipt_bank_name" )
    @Excel ( name = "收款银行名称" )
    private String receiptBankName;

    /**
     * 收款银行地址
     */
    @ApiModelProperty ( "收款银行地址" )
    @TableField ( "receipt_bank_address" )
    @Excel ( name = "收款银行地址" )
    private String receiptBankAddress;

    /**
     * 是否可用
     */
    @ApiModelProperty ( "结算状态；为空；到期付款；退票" )
    @TableField ( "settlement_status" )
    @Excel ( name = "结算状态" )
    private Integer settlementStatus;

    @ApiModelProperty ( "创建人" )
    @TableField ( "create_by" )
    private String createBy;

    @ApiModelProperty ( "创建时间" )
    @TableField ( "create_time" )
    private Date createTime;

    @ApiModelProperty ( "更新人" )
    @TableField ( "update_by" )
    private String updateBy;

    @ApiModelProperty ( "更新时间" )
    @TableField ( "update_time" )
    private Date updateTime;

    @ApiModelProperty ( "流程状态" )
    @TableField ( "state" )
    private String state;

    @ApiModelProperty ( "流程实例id" )
    @TableField ( "instance_id" )
    private String instanceId;

    /**
     * 是否可用
     */
    @ApiModelProperty ( "是否可用" )
    @TableField ( "is_used" )
    @Excel ( name = "是否可用" )
    private Integer isUsed;


    @ApiModelProperty ( "业务type" )
    @TableField ( exist = false )
    private String businessType;

    @ApiModelProperty ( "流程模型id" )
    @TableField ( exist = false )
    private String modelId;

    @ApiModelProperty ( "创建人" )
    @TableField ( exist = false )
    private String createUser;

    @ApiModelProperty ( "承兑人" )
    @TableField ( exist = false )
    private String acceptanceBankName;

    @ApiModelProperty ( "币别" )
    @TableField ( exist = false )
    private String kingBaseCurrencyName;

    @ApiModelProperty ( "币别编码" )
    @TableField ( exist = false )
    private String kingBaseCurrencyCode;

    @ApiModelProperty ( "采购部门" )
    @TableField ( exist = false )
    private String purchasingDeptName;

    @ApiModelProperty ( "采购员" )
    @TableField ( exist = false )
    private String purchasingUserName;

    @ApiModelProperty ( "付款组织" )
    @TableField ( exist = false )
    private String payDeptName;

    @ApiModelProperty ( "结算组织" )
    @TableField ( exist = false )
    private String settlementDeptName;

    @ApiModelProperty ( "收款单位名称" )
    @TableField ( exist = false )
    private String receiptDeptName;

    @ApiModelProperty ( "采购组织名称" )
    @TableField ( exist = false )
    private String purchasingOrgName;

    @ApiModelProperty ( "票据类型名称" )
    @TableField ( exist = false )
    private String billTypeName;

}
